-- 设置用户访问频率限制的参数
local username = KEYS[1] -- 从KEYS表获取第一个参数作为用户名
local timeWindow = tonumber(ARGV[1]) -- 从ARGV表获取第一个参数转为数字，作为时间窗口(秒)

-- 构造 Redis 中存储用户访问次数的键名
local accessKey = "short-link:user-flow-risk-control:" .. username --使用 .. 进行字符串拼接

-- 原子递增访问次数，并获取递增后的值
local currentAccessCount = redis.call("INCR", accessKey) --如果键不存在会自动创建并设为1

-- 设置键的过期时间
-- 当第一次访问这个key时才设置过期时间，否则会每次都设置，过期时间延长了
if currentAccessCount == 1 then
    redis.call("EXPIRE", accessKey, timeWindow)
end

-- 返回当前访问次数
return currentAccessCount